package com.wxzz.elearning.common.utils;

import org.apache.commons.lang.StringUtils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListUtils {

    /**
     * 将List转换为由指定分隔符分割的字符串
     *
     * @param array     [输入数组]
     * @param separator [指定分隔符]
     * @return java.lang.String
     */
    public static String listToString(List<?> array, String separator) {
        StringBuilder r = new StringBuilder();
        for (int i = 0; i < array.size(); i++) {
            if (array.size() - 1 == i) {
                r.append(array.get(i));
            } else {
                r.append(array.get(i)).append(separator);
            }
        }

        return r.toString();
    }

    /**
     * 将字符串数组转换为由指定分隔符分割的字符串
     *
     * @param arrStr    [输入数组]
     * @param separator [指定分隔符]
     * @return java.lang.String
     */
    public static String arrayToString(String[] arrStr, String separator) {
        StringBuilder r = new StringBuilder();
        for (int i = 0; i < arrStr.length; i++) {
            if (arrStr.length - 1 == i) {
                r.append(arrStr[i]);
            } else {
                r.append(arrStr[i]).append(separator);
            }
        }

        return r.toString();
    }


    /**
     * 将字符串按指定字符串分割存入到List中
     *
     * @param str       [字符串]
     * @param separator [分隔符]
     * @return java.util.List<java.lang.String>
     */
    public static List<String> stringToList(String str, String separator) {
        List<String> r = new ArrayList<>();
        if (StringUtils.isNotBlank(str)) {
            if (str.contains(separator)) {
                r = Arrays.asList(str.split(separator));
            } else {
                r.add(str);
            }
        }

        return r;
    }

    public static String listToString(List<?> array) {
        StringBuilder r = new StringBuilder();
        for (int i = 0; i < array.size(); i++) {
            if (array.size() - 1 == i) {
                r.append(array.get(i));
            } else {
                r.append(array.get(i)).append(",");
            }
        }

        return r.toString();
    }

    public static List<String> stringToList(String str) {
        List<String> r = new ArrayList<>();
        if (StringUtils.isNotBlank(str)) {
            if (str.contains(",")) {
                r = Arrays.asList(str.split(","));
            } else {
                r.add(str);
            }
        }

        return r;
    }

}
